<Schema name="FDTCANopenParameterSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:fdt="x-schema:FDTDataTypesSchema.xml">
	<!--Definition of Attributes-->
	<AttributeType name="schemaVersion" dt:type="number" default="0.90"/>
	<AttributeType name="index" dt:type="ui2"/>
	<AttributeType name="subIndex" dt:type="ui1"/>
	<AttributeType name="baudRateValue" dt:type="enumeration" dt:values="10Kbps 20Kbps 50Kbps 100Kbps 125Kbps 250Kbps 500Kbps 800Kbps 1000Kbps autobaudRate"/>	
	<AttributeType name="canNodeID" dt:type="ui1"/>   
	<AttributeType name="applicationObject" dt:type="ui4"/>
	<AttributeType name="scanObject" dt:type="ui4"/>
	<AttributeType name="dispatchObject" dt:type="ui8"/>
	<AttributeType name="minValue" dt:type="ui4"/>
	<AttributeType name="maxValue" dt:type="ui4"/>
	<AttributeType name="value" dt:type="ui4"/>
	<AttributeType name="default" dt:type="ui4"/>
	<AttributeType name="lssSupported" dt:type="boolean"/>
	<AttributeType name="guardTime" dt:type="ui2"/>
	<AttributeType name="lifeTimeFactor" dt:type="ui1"/>
	<AttributeType name="inhibitTimeEMCY" dt:type="ui2"/>
	<AttributeType name="synchronousCounterOverflowValue" dt:type="ui1"/>
	<AttributeType name="consumerHeartbeatTime" dt:type="ui4"/>
	<AttributeType name="producerHeartbeatTime" dt:type="ui2"/>
	<AttributeType name="communicationError" dt:type="ui1"/>
	<AttributeType name="specificError" dt:type="ui1"/>
	<AttributeType name="groupMessaging" dt:type="boolean"/>
	<AttributeType name="dynamicChannels" dt:type="ui1"/>
	<AttributeType name="selfStartingDevice" dt:type="boolean"/>
	<AttributeType name="bootUpSlave" dt:type="boolean"/>
	<AttributeType name="sdoRequestingDevice" dt:type="boolean"/>
	<AttributeType name="pdoMappingValueSubIndex0" dt:type="ui1"/>
	<AttributeType name="deviceParamValue" dt:type="bin.hex" />
	<AttributeType name="name" dt:type="string" />
	<AttributeType name="dependsOnNodeId" dt:type="boolean" default="0"/>
	<AttributeType name="offset" dt:type="ui4"/>	

	<!--Definition of Elements-->

	<!-- Element DataObject -->
	<ElementType name="DataObject" content="empty" model="closed">
		<attribute type="minValue" required="yes"/>
		<attribute type="maxValue" required="yes"/>
		<attribute type="value" required="yes" />
		<attribute type="default" required="no" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element COBId	-->
	<ElementType name="COBId" content="eltOnly" model="closed">
		<attribute type="dependsOnNodeId" required="no"/>
		<attribute type="offset" required="no" />
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element COBIdRx -->
	<ElementType name="COBIdRx" content="eltOnly" model="closed">
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element COBIdTx -->
	<ElementType name="COBIdTx" content="eltOnly" model="closed">
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element SDOParameter -->
	<ElementType name="SDOParameter" content="eltOnly" model="closed">
		<attribute type="index" required="yes"/>
		<!-- Node-ID of the SDO client -->
		<attribute type="canNodeID" required="no"/>
		<!-- COB-ID Client -> Server (rx) Sub-index 1 -->
		<element type="COBIdRx" minOccurs="1" maxOccurs="1"/>
		<!-- COB-ID Server -> Client (tx) Sub-index 1 -->
		<element type="COBIdTx" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element SDOParameterList Object 1200/1280h -->
	<ElementType name="SDOParameterList" content="eltOnly" model="closed">
		<element type="SDOParameter" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Object 0x1005 COB-ID SYNC message  -->
	<ElementType name="CobIdSyncMessage" content="eltOnly" model="closed">
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Object 0x1012 COB-ID TimeStampObject -->
	<ElementType name="CobIdTimeStampObject" content="eltOnly" model="closed">
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Object 0x1014 COB-ID EMCY -->
	<ElementType name="CobIdEMCY" content="eltOnly" model="closed">
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- ScanObjectEntry -->
	<ElementType name="ScanObjectEntry" content="empty" model="closed">
		<attribute type="scanObject" required="yes"/>
		<attribute type="fdt:writeAccess" required="no"/>
	</ElementType>

	<!-- Element ObjectScannerList Object 1FA0..1FCFh -->
	<ElementType name="ObjectScannerList" content="eltOnly" model="closed">
		<attribute type="index" required="yes"/>
		<!-- complete object not writeable by master, 
			   but needed for understanding of IO configuration -->
		<attribute type="fdt:writeAccess" required="no"/>
		<!-- all subIndex entries in increasing order 1,2,3.. -->
		<element type="ScanObjectEntry" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- DispatchObjectEntry	-->
	<ElementType name="DispatchObjectEntry" content="empty" model="closed">
		<attribute type="dispatchObject" required="yes"/>
		<attribute type="fdt:writeAccess" required="no"/>
	</ElementType>

	<!-- Element ObjectDispatchingList Object 1FD0..1FFFh -->
	<ElementType name="ObjectDispatchingList" content="eltOnly" model="closed">
		<attribute type="index" required="yes"/>
		<!-- complete object not writeable by master, 
			   but needed for understanding of IO configuration -->
		<attribute type="fdt:writeAccess" required="no"/>
		<!-- all subIndex entries in increasing order 1,2,3.. -->
		<element type="DispatchObjectEntry" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Element DeviceParam -->
	<ElementType name="DeviceParam" content="empty" model="closed">
		<attribute type="index" required="yes"/>
		<attribute type="subIndex" required="no"/>
		<attribute type="deviceParamValue" required="yes"/>
	</ElementType>
		
	<!-- Element DeviceParamList  -->
	<ElementType name="DeviceParamList" content="eltOnly" model="closed">
		<element type="DeviceParam" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Element BaudRate -->
	<ElementType name="BaudRate"  content="empty" model="closed">
		<attribute type="baudRateValue" required="yes"/>
	</ElementType>

	<!-- Element SupportedBaudRates -->
	<ElementType name="SupportedBaudRates" content="eltOnly" model="closed">
		<element type="BaudRate" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Element SynchronousWindowLength Object 1007h -->
	<ElementType name="SynchronousWindowLength" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element InhibitTime -->
	<ElementType name="InhibitTime" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element TransmissionType -->
	<ElementType name="TransmissionType" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element CompatibilityEntry -->
	<ElementType name="CompatibilityEntry" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element EventTimer -->
	<ElementType name="EventTimer" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element SyncStartValue -->
	<ElementType name="SyncStartValue" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element PDOParameter -->
	<ElementType name="PDOParameter" content="eltOnly" model="closed">
		<attribute type="index" required="yes"/>
		<attribute type="name" required="yes"/>
		<element type="COBId" minOccurs="1" maxOccurs="1"/>
		<element type="TransmissionType" minOccurs="1" maxOccurs="1"/>
		<element type="InhibitTime" minOccurs="0" maxOccurs="1"/>
		<element type="CompatibilityEntry" minOccurs="0" maxOccurs="1"/>
		<element type="EventTimer" minOccurs="0" maxOccurs="1"/>
		<element type="SyncStartValue" minOccurs="0" maxOccurs="1"/>
	</ElementType>

	<!-- PDOParameterList Object 1400/1800h -->
	<ElementType name="PDOParameterList" content="eltOnly" model="closed">
		<element type="PDOParameter" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- MappingEntry	-->
	<ElementType name="MappingEntry" content="eltOnly" model="closed">
		<attribute type="applicationObject" required="yes"/>
		<attribute type="name" required="yes"/>
		<attribute type="fdt:writeAccess" required="no"/>
		<element type="fdt:ChannelReferences" minOccurs="0" maxOccurs="1"/>
	</ElementType>

	<!-- Element PDOMapping  -->
	<ElementType name="PDOMapping" content="eltOnly" model="closed">
		<attribute type="index" required="yes"/>
		<!-- complete object not writeable by master, 
			   but needed for understanding of IO config -->
		<attribute type="fdt:writeAccess" required="no"/>
		<attribute type="pdoMappingValueSubIndex0" required="yes"/>
		<!-- all subIndex entries in increasing order 1,2,3.. -->
		<element type="MappingEntry" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Element PDOMappingList  Object 1600/1A00h 	-->
	<ElementType name="PDOMappingList" content="eltOnly" model="closed">
		<element type="PDOMapping" minOccurs="1" maxOccurs="*"/>
	</ElementType>


	<!-- Element Guard time Object 100Ch--> 
	<ElementType name="GuardTime" content="empty" model="closed">
		<attribute type="guardTime" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element Life time factor Object 100Dh --> 
	<ElementType name="LifeTimeFactor" content="empty" model="closed">
		<attribute type="lifeTimeFactor" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>
	
	<!-- Element Inhibit time EMCY Object 1015h --> 
	<ElementType name="InhibitTimeEMCY" content="empty" model="closed">
		<attribute type="inhibitTimeEMCY" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element Emergency consumer object Object 1028h --> 
	<ElementType name="EmergencyConsumerObject" content="eltOnly" model="closed">
		<!-- all subIndex entries in increasing order 0,1,2,3.. -->
		<element type="COBId" minOccurs="1" maxOccurs="*"/>
	</ElementType>

	<!-- Element Communication cycle period Object 1006h --> 
	<ElementType name="CommunicationCyclePeriod" content="eltOnly" model="closed">
		<element type="DataObject" minOccurs="1" maxOccurs="1"/>
	</ElementType>

	<!-- Element Synchronous counter overflow value Object 1019h --> 
	<ElementType name="SynchronousCounterOverflowValue" content="empty" model="closed">
		<attribute type="synchronousCounterOverflowValue" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element Consumer heartbeat time Object 1016h --> 
	<ElementType name="ConsumerHeartbeatTime" content="empty" model="closed">
		<attribute type="consumerHeartbeatTime" required="yes" />
	</ElementType>

	<!-- Element Consumer heartbeat time list Object 1016h -->
	<ElementType name="ConsumerHeartbeatTimeList" content="eltOnly" model="closed">
		<!-- all subIndex entries in increasing order 1,2,3.. -->
		<element type="ConsumerHeartbeatTime" minOccurs="1" maxOccurs="*"/>
	</ElementType>
	
	<!-- Element Producer heartbeat time Object 1017h --> 
	<ElementType name="ProducerHeartbeatTime" content="empty" model="closed">
		<attribute type="producerHeartbeatTime" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element CanOpenCommunicationError -->
	<ElementType name="CanOpenCommunicationError" content="empty" model="closed">
		<attribute type="communicationError" required="yes" />
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element SpecificError -->
	<ElementType name="SpecificError" content="empty" model="closed">
		<!-- profile or manufacturer specific error-->
		<attribute type="specificError" required="yes" /> 
		<attribute type="fdt:writeAccess" required="no" />
	</ElementType>

	<!-- Element ErrorBehaviorObject Object 1029h -->
	<ElementType name="ErrorBehaviorObject" content="eltOnly" model="closed">
		<element type="CanOpenCommunicationError" minOccurs="1" maxOccurs="1"/>
		<!-- all subIndex entries in increasing order 2,3.. -->
		<element type="SpecificError" minOccurs="0" maxOccurs="*"/> 
	</ElementType>

	<!-- Element Device  -->
	<ElementType name="Device" content="eltOnly" model="closed">
		<!-- Object 1005h -->
		<element type="CobIdSyncMessage" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1006h -->
		<element type="CommunicationCyclePeriod" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1007h -->
		<element type="SynchronousWindowLength" minOccurs="0" maxOccurs="1"/>
		<!-- Object 100Ch -->
		<element type="GuardTime" minOccurs="0" maxOccurs="1"/>
		<!-- Object 100Dh -->
		<element type="LifeTimeFactor" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1012h -->
		<element type="CobIdTimeStampObject" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1014h -->
		<element type="CobIdEMCY" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1015h -->
		<element type="InhibitTimeEMCY" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1016h -->
		<element type="ConsumerHeartbeatTimeList" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1017h -->
		<element type="ProducerHeartbeatTime" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1019h -->
		<element type="SynchronousCounterOverflowValue" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1028h -->
		<element type="EmergencyConsumerObject" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1029h -->
		<element type="ErrorBehaviorObject" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1200/1280h -->
		<element type="SDOParameterList" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1400/1800h -->
		<element type="PDOParameterList" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1600/1A00h -->
		<element type="PDOMappingList" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1FA0..1FCFh -->
		<element type="ObjectScannerList" minOccurs="0" maxOccurs="1"/>
		<!-- Object 1FD0..1FFFh -->
		<element type="ObjectDispatchingList" minOccurs="0" maxOccurs="1"/>
		<!-- device specific params, to be downloaded by the master-->
		<element type="DeviceParamList" minOccurs="0" maxOccurs="1"/>
	</ElementType>

	<!-- Element NetworkManagement -->
	<ElementType name="NetworkManagement" content="eltOnly" model="closed">
		<attribute type="canNodeID" required="yes"/>		
		<attribute type="lssSupported" required="yes"/>
		<attribute type="groupMessaging" required="yes"/>
		<attribute type="dynamicChannels" required="yes"/>
		<attribute type="selfStartingDevice" required="yes"/>
		<attribute type="bootUpSlave" required="yes"/>
		<attribute type="sdoRequestingDevice" required="yes"/>
		<element type="SupportedBaudRates" minOccurs="1" maxOccurs="1"/> 
	</ElementType>

 <!-- Element DeviceList --> 
 <ElementType name="DeviceList" content="eltOnly" model="closed">
     <element type="NetworkManagement" minOccurs="1" maxOccurs="1"/>
     <element type="Device" minOccurs="1" maxOccurs="*"/>
 </ElementType>
</Schema>
